package com.sinog.core.domain;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import java.io.Serializable;
import java.util.Date;

/**
 * @desc 预释放服刑人员基本信息表
 * @author -
 * @date -
 */
@EqualsAndHashCode(callSuper = true)
@Data
@Accessors(chain = true)
@TableName("prisoner_main")
public class PrisonerMain extends Model<PrisonerMain> {

    /**
     * 主键
     */
    private String id;
    /**
     * 罪犯编号
     */
    @TableId(type = IdType.INPUT)
    private String priNum;
    /**
     * 姓名
     */
    private String pName;
    /**
     * 曾用名
     */
    private String usedName;
    /**
     * 性别
     */
    private String sex;
    /**
     * 民族
     */
    private String nationality;
    /**
     * 证件类型
     */
    private String idType;
    /**
     * 身份证号
     */
    private String idNum;
    /**
     * 文化程度
     */
    private String education;
    /**
     * 核查状态
     */
    private String state;
    /**
     * 录入监所
     */
    private String adduserid;
    /**
     * 录入监所名称
     */
    private String addusername;
    /**
     * 衔接状态
     */
    private String stateXj;
    /**
     * 衔接司法所ID
     */
    private String useridXj;
    /**
     * 衔接司法所名称
     */
    private String usernameXj;
    /**
     * 人员状态
     * 01:司法所补录的解矫人员,05:司法所补录的监狱人员,3.看守所录入的服刑人员,4:接口进入的看守所人员,
     * 5:监狱录入的服刑人员,6:接口进入的监狱服刑人员,7:社矫录入的服刑人员,8:接口进入的社矫人员
     * 9:监狱通过excel导入,10:社矫通过excel导入,11:看守所通过excel导入
     */
    private String pstate;
    /**
     * 根据录入用户level,例、监狱01,看守所:02
     */
    private String ptype;
    /**
     * 所在监所上级监狱局
     */
    private String prisonFather;
    /**
     * 服刑单位编码
     */
    private String pdanwei;
    /**
     * 服刑单位名称
     */
    private String pdanweiName;
    /**
     * 户籍类型户籍类型
     */
    private String priAddr;
    /**
     * 户籍所在省
     */
    private String nativepro;
    /**
     * 户籍所在地市
     */
    private String nativecity;
    /**
     * 户籍所在区县
     */
    private String nativecou;
    /**
     * 户籍所在乡镇
     */
    private String nativevill;
    /**
     * 户籍所在省name
     */
    private String nativeproName;
    /**
     * 户籍所在地市name
     */
    private String nativecityName;
    /**
     * 户籍所在区县name
     */
    private String nativecouName;
    /**
     * 户籍所在乡镇name
     */
    private String nativevillName;
    /**
     * 户籍详细门牌号
     */
    private String nativenum;
    /**
     * 居住所在省
     */
    private String placepro;
    /**
     * 居住所在地市
     */
    private String placecity;
    /**
     * 居住所在区县
     */
    private String placecou;
    /**
     * 居住所在乡镇
     */
    private String placevill;
    /**
     * 居住所在省name
     */
    private String placeproName;
    /**
     * 居住所在地市name
     */
    private String placecityName;
    /**
     * 居住所在区县name
     */
    private String placecouName;
    /**
     * 居住所在乡镇name
     */
    private String placevillName;
    /**
     * 居住详细门牌号
     */
    private String placenum;
    /**
     * 创建账号
     */
    private String createUser;
    /**
     * 更新账号
     */
    private String updateUser;
    /**
     * select,insert,update,ref
     * 0 默认未删除  -1已删除
     */
    private String delFlag;
    /**
     * 逮捕机构所在省
     */
    private String arrestpro;
    /**
     * 逮捕机构所在市
     */
    private String arrestcity;
    /**
     * 逮捕机构所在县
     */
    private String arrestcou;
    /**
     * 逮捕机构所在乡镇
     */
    private String arrestvill;
    /**
     * 逮捕机构详细地址
     */
    private String arrestnum;
    /**
     * 逮捕机构所在省name
     */
    private String arrestproName;
    /**
     * 逮捕机构所在市name
     */
    private String arrestcityName;
    /**
     * 逮捕机构所在县name
     */
    private String arrestcouName;
    /**
     * 逮捕机构所在乡镇name
     */
    private String arrestvillName;
    /**
     * 未衔接转安置帮教状态 1 标识已经转为安置帮教
     */
    private String flag;
    /**
     * 非大陆籍具体具体类型（1: '外国籍' 2: '无国籍' 3: '香港' 4: '澳门' 5: '台湾'）
     */
    private String detailType;
    /**
     * 户籍大类（01：户籍完整人员 02：查不清户籍人员）
     */
    private String hjType;
    /**
     * 查不清户籍类别-原侦查机关所在省
     */
    private String investigatePro;
    /**
     * 查不清户籍类别-原侦查机关所在市
     */
    private String investigateCity;
    /**
     * 查不清户籍类别-原侦查机关所在县
     */
    private String investigateCou;
    /**
     * 查不清户籍类别-原侦查机关所在乡镇
     */
    private String investigateVill;
    /**
     * 查不清户籍类别-原侦查机关详细地址
     */
    private String investigateNum;
    /**
     * 查不清户籍类别-原侦查机关所在省name
     */
    private String investigateProName;
    /**
     * 查不清户籍类别-原侦查机关所在市name
     */
    private String investigateCityName;
    /**
     * 查不清户籍类别-原侦查机关所在县name
     */
    private String investigateCouName;
    /**
     * 查不清户籍类别-原侦查机关所在乡镇name
     */
    private String investigateVillName;
    /**
     * 湖南对接特殊字段
     */
    @TableField(exist = false)
    private String kbmrybh;
    /**
     * 出生日期
     */
    @JsonFormat(locale = "zh", timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    private Date age;
    /**
     * 入监日期
     */
    @JsonFormat(locale = "zh", timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    private Date addtime;
    /**
     * 创建时间
     */
    @JsonFormat(locale = "zh", timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;
    /**
     * 更新时间
     */
    @JsonFormat(locale = "zh", timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    private Date updateTime;
    /**
     * 操作时间
     */
    @JsonFormat(locale = "zh", timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    private Date optime;

    @Override
    protected Serializable pkVal() {
        return priNum;
    }
}